package com.inspur.edp.common.expr.ast;

import com.inspur.edp.common.type.Type;
import com.inspur.edp.common.type.TypeRefer;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * @author lizhaorui
 * @date 2025/8/15
 * @description
 */

public interface ASTContext {

    Type getThisType();

    Type getType(TypeRefer typeRefer);

    Type getType(String url);

    void addImport(String fullName);

    void addImports(Collection<String> imports);

    boolean containImportName(String typeName);

    String getImportFullName(String typeName);

    void addVariable(String varName, TypeRefer typeRefer);

    void removeVariable(String varName);

    TypeRefer getVarType(String varName);

    boolean containVarName(String varName);

    List<String> getGenericTypeNames();


}